1. Field of the Invention
The present invention relates to the field information networking and more specifically to transmitting configuration information between a central database and one or more servers in a network.
2. Description of the Related Art
In a typical network, a server directly communicates with the central database in order to obtain configuration information. FIG. 1 illustrates an overall diagram of a conventional Transmission Control Protocol (TCP)/Internet Protocol (IP) network 101 including one or more Domain Name Service (DNS) servers 102A-N, one or more Dynamic Host Configuration Protocol (DHCP) servers 103A-N and a central database 104. Typically, the one or more DNS servers 102A-N and DHCP servers 103A-N on the network transmit requests for configuration information and send configuration updates to the central database 104. The central database 104 either transmits the requested configuration information back to each server or it stores the configuration updates received from each server.
In the past, organizations relied on paper based methods of managing IP addresses in a network. DHCP simplified the management and assignment of IP addresses to clients by eliminating the need for the network administrator to manually configure the network. With DCHP, when a client requests an IP address in order to communicate over the network, a DHCP server answers the request by providing network configuration information that was obtained from a database and dynamically assigning an IP address to the client. Each DHCP server manages a range of client addresses and can pick any address from that range as long as it is not being used by a another client managed by that DHCP server. Since the address is dynamically assigned, the client can have a different IP address each time it logs on to the network. Along with the ability to dynamically assign IP addresses, a DHCP server also supports static IP address that have been assigned to one particular client on the network. Based on the configuration information received from the database, the DHCP server can automatically assign a specific IP address to a specific client.1 
DNS also simplified the management of networks by translating domain names into IP addresses. Since the DNS server contains a list of domain names and their associated IP addresses, a host or client can be located through by its domain name rather than its IP address. Any given domain name could be associated with more than one IP address and any IP address could be associated with more than one domain name. A DNS server updates the domain name and IP address associations by periodically polling a central database containing configuration information for the network. When a new client is assigned an IP address by a DHCP server, the new configuration information is stored in the central database. Each DNS servers on the network poll the central database for configuration changes. If a new IP address was assigned to a client managed by a DNS server, the DNS server updates the domain name with the new IP address or updates the IP address with the new domain name.2 
In mid-to large-scale networks, a significant number of transmissions between the central database 104 and the DNS servers 102A-N and DHCP servers 103A-N occur. Each DNS server 102A-N and DHCP server 103A-N must individually contact the central database 104 to obtain any configuration changes made to the network that were stored in the central database 104. If there are a large number of DNS servers 102A-N and DHCP servers 103A-N, for example 100, on the network, a bandwidth issue is created at the central database 104.
Therefore, it would be useful to provide an improved means of communicating between a database and one or more servers.
A method and apparatus for managing IP addressing in a network and effectively synchronizing communication between a central database and one or more servers (such as DNS and DHCP) is described. In one embodiment, a server manager acts as an interface between the one or more servers and the central database. The server manager also synchronizes requests for configuration information and configuration updates from the one or more servers and transmits the requests and updates to the central database through a single communication channel. The server manager then receives the configuration information from the central database and sends the information to the servers that issued the requests. The server manager also transmits the configuration updates from the one or more servers to the central database. Periodically, the server manager polls the central database for any changes in configuration made to the network. If the server manager finds any changes stored in the central database, it transmits the changes to the appropriate servers. The server manager also processes multiple requests at one time and queues up any further requests based on the priority of the work requested or the order in which they were received.